#include "opecv_mask.h"
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace std;
using namespace cv;


void doOpencvMask()
{
	Mat image, mask;
	Rect r1(100, 100, 150, 100);
	Mat img1, img2, img3, img4;
	image = imread("test.jpg");
	mask = Mat::zeros(image.size(), CV_8UC1);
	mask(r1).setTo(255);
// r1是设置好的感兴趣区域
// 第一步建立与原图一样大小的mask图像，并将所有像素初始化为0，因此全图成了一张全黑色图。
// 第二步将mask图中的r1区域的所有像素值设置为255,也就是整个r1区域变成了白色。
	
	img1 = image(r1);
	image.copyTo(img2, mask);
// 原图(image)与掩膜(mask)进行与运算后得到了结果图（img2）	

	image.copyTo(img3);
	img3.setTo(0, mask);


	imshow("Image sequence", image);
	imshow("img1", img1);
	imshow("img2", img2);
	imshow("img3", img3);
	imshow("mask", mask);

	waitKey();
}

